﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using hou_elearning.Business;
using hou_elearning.Entity;
using CKEditor.NET;

public partial class Admin_control_ucChambaituluan : System.Web.UI.UserControl
{
    Int64 PK_UserID = 0;
   
    
    public Int32 iGetUserLogin()
    {
        Int32 PK_iNguoidungID = 0;
        try
        {
            if (Session["UserID"] != null)
            {
                PK_iNguoidungID = Int32.Parse(Session["UserID"].ToString());
            }
        }
        catch (Exception ex)
        {
            PK_iNguoidungID = 0;
        }
        return PK_iNguoidungID;
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
       // Session["FK_iDekiemtraID"] = 1;
        Session["PK_iThongtinbaikiemtraID"] = 2;
        PK_UserID = iGetUserLogin();
      //  if (!IsPostBack)
      //  {
            naprptBaithituluan();
           // napThongtinbaithi();
            
//}
    }
    private void naprptBaithituluan()
    {
        //nạp tên kì kiểm tra
        if (Session["PK_iKiemtraID"] != null)
        {
            KiemtraEntity oKiemtra = KiemtraBRL.GetOne((int)Session["PK_iKiemtraID"]);
            //kiểm tra nếu chưa tới, hoặc quá ngày giờ thi thì không hiện đề
            lblKiemtra.Text = oKiemtra.sTenbaikiemtra;
            lblGiothi.Text = oKiemtra.dGiobatdaukiemtra.ToString("HH:mm:ss");
            lblNgaythi.Text = oKiemtra.dNgaykiemtra.ToString("dd/MM/yyyy");                    
            lblThoigian.Text = oKiemtra.iThoigianlambai + " phút";
            napDe();
            NguoidungEntity nguoidung = NguoidungBRL.GetOne(iGetUserLogin());
            lblHoten.Text = nguoidung.sHoten;
            lblTaikhoan.Text = nguoidung.sTendangnhap;            
            // nạp tên khóa học
            KhoahocEntity oKhoahoc = KhoahocBRL.GetOne((int)oKiemtra.FK_iKhoahocID);
            lblKhoahoc.Text = oKhoahoc.sTenkhoahoc;
            //nạp hệ số điểm
            DanhmuckiemtraEntity danhmuc = DanhmuckiemtraBRL.GetOne(oKiemtra.FK_iDanhmuckiemtraID);
            lblHesodiem.Text = danhmuc.iHesodiem+"";
            
        }
        
    }
    private void napDe()
    {
        // nạp đề
        if (Session["FK_iDekiemtraID"] != null)
        {
            List<CauhoiEntity> listCauhoi = CauhoiBRL.GetByFK_iDekiemtraID((int)Session["FK_iDekiemtraID"]);
            if (listCauhoi.Count <= 0) divThongbao.InnerHtml = "<p class='info' id='error'><span class='info_inner'>Đề kiểm tra không tồn tại câu hỏi!</span></p>";
            rptBaithituluan.DataSource = listCauhoi;
            rptBaithituluan.DataBind();
            btnOK.Visible = true;
            btnExit.Visible = true;
        }
        else
            divThongbao.InnerHtml = "<p class='info' id='error'><span class='info_inner'>Đề thi không hợp lệ!</span></p>";
        
    }
    protected void rptBaithituluan_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Label textbox = (Label)e.Item.FindControl("txtTraloi");
          
            //load bài đang làm dở  từ csdl nếu có
            ThongtinbaikiemtraEntity ttbaikiemtra = new ThongtinbaikiemtraEntity();
            ttbaikiemtra.FK_iHocvienID = PK_UserID;
            ttbaikiemtra.FK_iKiemtraID = (int)Session["PK_iKiemtraID"];
            ttbaikiemtra.PK_iThongtinbaikiemtraID = 0;
            int ktID = ThongtinbaikiemtraBRL.GetByFK_iHocvienID_FK_iKiemtraID(ttbaikiemtra);
            if (ktID > 0)
            {
                Label label = (Label)e.Item.FindControl("lblMacauhoi");
                int PK_iCauhoiID1 = int.Parse(label.Text);
                BaikiemtratuluanEntity oBaikiemtra = BaikiemtratuluanBRL.GetOne(ktID, PK_iCauhoiID1);
                textbox.Text = oBaikiemtra.sNoidung;
            }
        }

    }
    protected void rptBaithituluan_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        
    }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        try
        {
            
            ThongtinbaikiemtraEntity ttbaikiemtra = new ThongtinbaikiemtraEntity();
            ttbaikiemtra.FK_iHocvienID = PK_UserID;
            
           
            // khi người dùng nhấn chấm điểm update
            //int kt = 0;
            int ktID = ThongtinbaikiemtraBRL.GetByFK_iHocvienID_FK_iKiemtraID(ttbaikiemtra);
            //Lấy obj cũ để lưu các thông tin không thay đổi
            ThongtinbaikiemtraEntity oBaikiemtracu = ThongtinbaikiemtraBRL.GetOne(ktID);
            //if (ktID > 0)
            //{
                //update

                ttbaikiemtra.PK_iThongtinbaikiemtraID = ktID;
                bool ktra = ThongtinbaikiemtraBRL.Update_non_FK_iGiangvienchambaiID(ttbaikiemtra);
                //update chi tiết bên bài kiểm tra tự luận
                foreach (RepeaterItem item in rptBaithituluan.Items)
                {
                    BaikiemtratuluanEntity oKiemtratuluan = new BaikiemtratuluanEntity();
                    oKiemtratuluan.FK_iThongtinbaikiemtraID = ktID;
                    Label label = (Label)item.FindControl("lblMacauhoi");
                    oKiemtratuluan.FK_iCauhoiID = Int64.Parse(label.Text);
                    Label traloi = (Label)item.FindControl("txtTraloi");
                    oKiemtratuluan.sNoidung = traloi.Text;
                    BaikiemtratuluanBRL.Edit(oKiemtratuluan);

                }

                if (ktra == true) divThongbao.InnerHtml = "<p class='info' id='info'><span class='info_inner'>Bài làm của bạn đã được cập nhật thành công!</span></p>";


        }
        catch (Exception ex)
        {
            divThongbao.InnerHtml = "<p class='info' id='error'><span class='info_inner'>Hệ thống xảy ra lỗi khi gửi bài thi:" + ex.Message + " </span></p>";

        }
      
    }
}